package com.ph.shopping.common.util.transform;

import java.math.BigDecimal;

/**
 * 金额转换工具类
 * 
 * @author WQiang
 * 
 */
public class MoneyTransUtil {
	/**
	 * double转换成int类型,乘以10000
	 * 
	 * @param dou
	 * @return
	 */
	public static int transMultiInt(Double dou) {
		return (int) (dou * 10000);
	}

	/**
	 * int转换成double类型,除以10000
	 * 
	 * @param dou
	 * @return
	 */
	public static double transDivisInt(Integer dou) {
		return doubleFormat((double) dou / 10000);
	}

	/**
	 * double转换成long类型,乘以10000
	 * 
	 * @param dou
	 * @return
	 */
	public static long transMultiDouble(Double dou) {
		return (long) (dou * 10000);
	}

	/**
	 * long转换成double类型,除以10000
	 * 
	 * @param dou
	 * @return
	 */
	public static double transDivisDouble(Long dou) {
		return doubleFormat((double) dou / 10000);
	}

	/**
	 * BigDecimal转换成BigDecimal类型,乘以10000
	 * 
	 * @param bigDecimal
	 * @return
	 */
	public static BigDecimal transMulti(BigDecimal bigDecimal) {
		return bigDecimal.multiply(new BigDecimal(10000));
	}

	/**
	 * BigDecimal转换成BigDecimal类型,除以10000
	 * 
	 * @param bigDecimal
	 * @return
	 */
	public static BigDecimal transMulti1(BigDecimal bigDecimal) {
		return bigDecimal.divide(new BigDecimal(10000));
	}

	/**
	 * BigDecimal转换成BigDecimal类型,乘以10000
	 * 
	 * @param bigDecimal
	 * @return
	 */
	public static long transMultiToBig1(BigDecimal bigDecimal) {
		return bigDecimal.longValue() * 10000;
	}

	/**
	 * long转换成BigDecimal类型,除以10000
	 * 
	 * @param lbig
	 * @return
	 */
	public static BigDecimal transDivis1(Long lbig) {
		return new BigDecimal(lbig / 10000);
	}

	/**
	 * BigDecimal转换成BigDecimal类型,除以10000
	 * 
	 * @param bigDecimal
	 * @return
	 */
	public static BigDecimal transDivis(BigDecimal bigDecimal) {
		return bigDecimal.divide(new BigDecimal(10000));
	}

	/**
	 * BigDecimal转换成int类型,乘以10000
	 * 
	 * @param bigDecimal
	 * @return
	 */
	public static int transMultiToInt(BigDecimal bigDecimal) {
		return bigDecimal.intValue() * 10000;
	}

	/**
	 * int转换成BigDecimal类型,除以10000
	 * 
	 * @param lbig
	 * @return
	 */
	public static BigDecimal transDivisToBigDecimal(Integer ibig) {
		return new BigDecimal(ibig / 10000);
	}

	/**
	 * 
	 * @Title: doubleFormat
	 * @Description:double格式化
	 * @author WQiang
	 * @date 2017年3月30日 上午11:52:37
	 * @param d
	 * @return
	 */
	protected static double doubleFormat(double d) {
		return Double.parseDouble(String.format("%.2f", d));
	}

	public static void main(String[] args) {
		System.out.println(transDivisDouble(800L));
	}

}
